﻿using FakeXiecheng.API.Dto;
using FakeXiecheng.API.Dtos;
using FakeXiecheng.API.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using static Microsoft.Extensions.Logging.EventSource.LoggingEventSource;

namespace FakeXiecheng.API.Services
{
    public interface ITouristRouteRepository
    {
        Task<IEnumerable<TouristRoute>> GetTouristRoutesAsync(string keyword, string operatorType, int? raringVlaue);
        Task<TouristRoute> GetTouristRouteAsync(Guid touristRouteId);
        Task<bool> TouristRoutesExistAsync(Guid touristRouteId);
        Task<IEnumerable<TouristRoutePicture>> GetTouristRoutePictureByTouristRouteIdAsync(Guid touristRouteId);
        Task<TouristRoutePicture> GetTouristRoutePictureAsync(int Id);

        void AddTouristRoute(TouristRoute touristRoute);

        void AddTouristRoutePicture(Guid touristRouteId, TouristRoutePicture picture);

        void DeleteTouristRoute(TouristRoute touristRoute);

        void DeleteTouristRoutePicture(TouristRoutePicture touristRoutePicture);

        Task<IEnumerable<TouristRoute>> GetBatchTouristRouteAsync(IEnumerable<Guid> touristRouteIds);

        void BatchDeleteTouristRoute(IEnumerable<TouristRoute> touristRoutes);

        Task<bool> SaveAsync();
    }
}
